var obj = {
  name: "frank",
  age: 18,
  _address: "北京市",
};

// 存取属性描述符
// 1. 隐藏某一个私有属性，不希望直接被外界使用和赋值
// 2. 如果我们希望截取某一个属性它访问和设置值得过程时，也会使用存储属性描述符
Object.defineProperty(obj, "address", {
  enumerable: true,
  configurable: true,
  get: function () {
    return this._address;
  },
  set: function (value) {
    this._address = value;
  },
});

console.log(obj.address);

obj.address = "上海市";
console.log(obj.address);
console.log(obj);
